package cn.wolfcode.crm.mapper;

import cn.wolfcode.crm.domain.ClassOrder;
import cn.wolfcode.crm.domain.OfficialStudent;
import cn.wolfcode.crm.query.OfficialStudentQueryObj;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface OfficialStudentMapper {
    int deleteByPrimaryKey(Long id);

    int insert(OfficialStudent record);

    OfficialStudent selectByPrimaryKey(Long id);

    List<OfficialStudent> selectAll();

    int updateByPrimaryKey(OfficialStudent record);

    int queryForCount(OfficialStudentQueryObj qo);

    List<OfficialStudent> queryForList(OfficialStudentQueryObj qo);

    //修改缴费状态
    void updateDealTuitionStateById(Long id);

    //修改学习状态
    void updateStudyStateById(Long id);
    //休学
    void quitClass(Long id);
    //复学
    void recoverClass(Long id);
    //流失
    void updateStudyStateLoss(Long id);

    void updateStudyState(Long beforeStuId);

    //修改转班后的班级
    void updateNowClass(@Param("beforeStuId") Long beforeStuId, @Param("nowClassId") Long nowClassId);

    void updateNoDealTuition(@Param("divide") BigDecimal divide, @Param("id") Long id);

    List<ClassOrder> classOrder();

    int queryForCountClassOrder();

    List<Map<String,Object>> selectSaleChart();

    int queryForCountPaymentOrder();

    List<ClassOrder> paymentOrder();
}